/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.example.netcracker.controller;

import java.util.Date;
import java.util.List;
import ru.example.netcracker.FileSettings;
import ru.example.netcracker.model.entity.Contact;
import ru.example.netcracker.model.entity.Task;
import ru.example.netcracker.model.observer.Observer;
import ru.example.netcracker.timer.OnReceiveTaskListener;
import ru.example.netcracker.timer.ServiceTimer;

/**
 *
 * @author Nikolay
 */
public interface ControllerFacade {
    void addObserver(Observer o);
    void deleteObserver(Observer o);
    void addOnReceiveTaskListener(OnReceiveTaskListener listener);
    void removeOnReceiveTaskListener();
    List<Task> getTasks();
    Task getTask(String index);
    void startPlayer(String path);
    void stopPlayer();
    boolean createNotification(String name, String description, Date date);
    boolean createNotification(String name, String description, Date date, List<Contact>contacts);
    boolean updateNotification(String id, String name, String description, Date date, List<Contact>contacts); 
    boolean createAlarm(String name, String path, Date date);
    boolean updateAlarm(String id, String name, String path, Date date);
    boolean deleteTask(String id);
    void init();
    void close();
}
